Goal: get more interesting patterns from mashR

library(flashr)
Error in library(flashr) : there is no package called ‘flashr’

Get QTL info

data.strong = mash_set_data(beta.hat[top.hits,], se.hat[top.hits,], V=Vhat, df=df.hat[top.hits,])
the condition has length > 1 and only the first element will be used

What do the existing mashR matrices look like?

names(m$fitted_g$Ulist)
 [1] "ED_PCA_1"                   "ED_PCA_2"                   "ED_PCA_3"                   "ED_PCA_4"                  
 [5] "ED_PCA_5"                   "ED_tPCA"                    "identity"                   "Astrocytes"                
 [9] "Visceral-neurons"           "Amacrine-cells"             "Oligodendrocytes"           "Ganglion-cells"            
[13] "Smooth-muscle-cells"        "Limbic-system-neurons"      "Vascular-endothelial-cells" "Photoreceptor-cells"       
[17] "CCL19-CCL21-positive-cells" "CLC-IL5RA-positive-cells"   "Mesangial-cells"            "AFP-ALB-positive-cells"    
[21] "Bipolar-cells"              "Satellite-cells"            "ENS-neurons"                "ENS-glia"                  
[25] "Granule-neurons"            "Hepatoblasts"               "Microglia"                  "IGFBP1-DKK1-positive-cells"
[29] "Purkinje-neurons"           "Epicardial-fat-cells"       "Cardiomyocytes"             "equal_effects"             
[33] "simple_het_1"               "simple_het_2"               "simple_het_3"              

Here we've got 5 "ED PCA" matrices, one "ED tPCA" matrix, the identity matrix, specific effects for each context, equal effects, and simple het effects. What do the ED PC matrices look like?

corrplot(m$fitted_g$Ulist$ED_PCA_1)

corrplot(m$fitted_g$Ulist$ED_PCA_2)

corrplot(m$fitted_g$Ulist$ED_PCA_3)

corrplot(m$fitted_g$Ulist$ED_PCA_4)

corrplot(m$fitted_g$Ulist$ED_PCA_5)

corrplot(m$fitted_g$Ulist$ED_tPCA)

Sooo that's a problem! How about those het ones?

corrplot(m$fitted_g$Ulist$simple_het_1)

corrplot(m$fitted_g$Ulist$simple_het_2)

corrplot(m$fitted_g$Ulist$simple_het_3)

So these... all suck, no wonder we are not seeing interesting patterns. Looking under the hood, lets see if maybe we're running into some issues just from PCA

U.pca = cov_pca(data.strong, 5)
corrplot(U.pca$PCA_1, is.corr=F)

corrplot(U.pca$PCA_2, is.corr=F)

corrplot(U.pca$PCA_3, is.corr=F)

corrplot(U.pca$PCA_4, is.corr=F)

corrplot(U.pca$PCA_5, is.corr=F)

corrplot(U.pca$tPCA, is.corr=F)

If we want to see the patterns coming out, we obviously need to have some patterns going in, and right now, we do not.

all_tophits <- qtls %>%
  select(gv, gene, `bonf.p`, type) %>%
  group_by(gene) %>%
  slice_min(`bonf.p`, n=1, with_ties=FALSE)
all_tophits$q <- qvalue(sighits$bonf.p)$qvalues

sighits <- all_tophits %>%
  filter(q<=0.05)

sig.hits <- pull(sighits, gv)
data.stronger = mash_set_data(beta.hat[sig.hits,], se.hat[sig.hits,], V=Vhat, df=df.hat[sig.hits,])
the condition has length > 1 and only the first element will be used
U.pca.stronger = cov_pca(data.stronger, 5)
corrplot(U.pca.stronger$PCA_1, is.corr=F)

corrplot(U.pca.stronger$PCA_2, is.corr=F)

corrplot(U.pca.stronger$PCA_3, is.corr=F)

corrplot(U.pca.stronger$PCA_4, is.corr=F)

corrplot(U.pca.stronger$PCA_5, is.corr=F)

corrplot(U.pca.stronger$tPCA, is.corr=F)

Feed this into the ED algorithm

U.ed.stronger = cov_ed(data.stronger, U.pca.stronger)

corrplot(U.pca.stronger$ED_PCA_1, is.corr=F)
corrplot(U.pca.stronger$ED_PCA_2, is.corr=F)
corrplot(U.pca.stronger$ED_PCA_3, is.corr=F)
corrplot(U.pca.stronger$ED_PCA_4, is.corr=F)
corrplot(U.pca.stronger$ED_PCA_5, is.corr=F)
corrplot(U.pca.stronger$ED_tPCA, is.corr=F)

We are maybe starting to get somewhere, but it's still not quite where we'd like it to be. Also worth noting that this is pretty similar to the original one.

corrplot(U.flash$tFLASH_default, is.corr=F)
corrplot(U.flash$FLASH_default_1, is.corr=F)

corrplot(U.flash$FLASH_default_2, is.corr=F)

corrplot(U.flash$FLASH_default_3, is.corr=F)

corrplot(U.flash$FLASH_default_4, is.corr=F)

corrplot(U.flash$FLASH_default_5, is.corr=F)

corrplot(U.flash$FLASH_default_6, is.corr=F)

corrplot(U.flash$FLASH_default_7, is.corr=F)

corrplot(U.flash$FLASH_default_8, is.corr=F)

corrplot(U.flash$FLASH_default_9, is.corr=F)
Error in corrplot(U.flash$FLASH_default_9, is.corr = F) : 
  Need a matrix or data frame!
LS0tCnRpdGxlOiAibWFzaFIgQWx0ZXJuYXRpdmVzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpHb2FsOiBnZXQgbW9yZSBpbnRlcmVzdGluZyBwYXR0ZXJucyBmcm9tIG1hc2hSCgpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkobWFzaHIpCmxpYnJhcnkodnJvb20pCmxpYnJhcnkoZmxhc2hyKQpgYGAKCkdldCBRVEwgaW5mbwpgYGB7cn0KbG9hZF9xdGxzIDwtIGZ1bmN0aW9uKHMpIHsKICB0IDwtIHN0cl9zcGxpdChzLCAiLyIpW1sxXV1bMTJdCiAgcXRscyA8LSB2cm9vbShzKSAlPiUKICAgIGFkZF9jb2x1bW4odHlwZT10KQogIHF0bHMKfQoKIyBjb21wdXRlIHN0YW5kYXJkIGVycm9ycywgb21pdHRpbmcgdGVzdHMgd2hlcmUgd2UgY2FuJ3Qgb2J0YWluIHJlYXNvbmFibGUgZXN0aW1hdGVzCmNlbGx0eXBlcyA8LSBjKCdBc3Ryb2N5dGVzJywgJ1Zpc2NlcmFsLW5ldXJvbnMnLCAnQW1hY3JpbmUtY2VsbHMnLAonT2xpZ29kZW5kcm9jeXRlcycsICdHYW5nbGlvbi1jZWxscycsICdTbW9vdGgtbXVzY2xlLWNlbGxzJywgCidMaW1iaWMtc3lzdGVtLW5ldXJvbnMnLCAnVmFzY3VsYXItZW5kb3RoZWxpYWwtY2VsbHMnLCAKJ1Bob3RvcmVjZXB0b3ItY2VsbHMnLCAnQ0NMMTktQ0NMMjEtcG9zaXRpdmUtY2VsbHMnLCAKJ0NMQy1JTDVSQS1wb3NpdGl2ZS1jZWxscycsICdNZXNhbmdpYWwtY2VsbHMnLCAnQUZQLUFMQi1wb3NpdGl2ZS1jZWxscycsIAonQmlwb2xhci1jZWxscycsICdTYXRlbGxpdGUtY2VsbHMnLCAnRU5TLW5ldXJvbnMnLCAnRU5TLWdsaWEnLCAKJ0dyYW51bGUtbmV1cm9ucycsICdIZXBhdG9ibGFzdHMnLCAnTWljcm9nbGlhJywgJ0lHRkJQMS1ES0sxLXBvc2l0aXZlLWNlbGxzJywgCidQdXJraW5qZS1uZXVyb25zJywgJ0VwaWNhcmRpYWwtZmF0LWNlbGxzJywgJ0NhcmRpb215b2N5dGVzJykKCnF0bF9maWxlcyA8LSBwYXN0ZTAoIi9wcm9qZWN0Mi9naWxhZC9qcG9wcC9lYlFUTC9yZXN1bHRzL21hc2hyL2FnZ3JlZ2F0aW9uL3R5cGUvaGlnaHBhc3NfY2VsbGlkX2NvbmZpZGVudC9lcXRscy8iLCAKICAgICAgICAgICAgICAgICAgICBjZWxsdHlwZXMsICIvZXF0bHMubXRjLnRzdiIpCgpxdGxzIDwtIG1hcF9kZnIocXRsX2ZpbGVzLCBsb2FkX3F0bHMpCgojIHN1YnNldCB0byBzbnBzIHRoYXQgd2VyZSBrZXB0IGZvciBhbGwgYW5hbHlzZXMKcXRscyA8LSBxdGxzICU+JQogIG11dGF0ZShzZT1pZl9lbHNlKGB0LXN0YXRgPT0wLCBhcy5kb3VibGUoTkEpLCBiZXRhL2B0LXN0YXRgKSwgLmFmdGVyPSdiZXRhJykgJT4lCiAgbXV0YXRlKHNlPWlmX2Vsc2Uoc2U9PTAsIGFzLmRvdWJsZShOQSksIHNlKSkgJT4lCiAgZHJvcF9uYSgpICU+JQogIHVuaXRlKGd2LCBjKGdlbmUsIFNOUCksIHNlcD0iLS0iLCByZW1vdmU9RkFMU0UpCgprZWVwZXJzIDwtIHF0bHMgJT4lCiAgZHBseXI6OmNvdW50KGd2KSAlPiUgCiAgZmlsdGVyKG49PWxlbmd0aChxdGxfZmlsZXMpKSAlPiUKICBwdWxsKGd2KQoKcXRscyA8LSBxdGxzICU+JQogIGZpbHRlcihndiAlaW4lIGtlZXBlcnMpCnNhdmVSRFMocXRscywgIi9wcm9qZWN0Mi9naWxhZC9qcG9wcC9lYlFUTC90ZW1wL3F0bHNfY29tYmluZWQucmRzIikKCmJldGEuaGF0IDwtIHF0bHMgJT4lCiAgc2VsZWN0KGd2LCBiZXRhLCB0eXBlKSAlPiUKICBwaXZvdF93aWRlcihuYW1lc19mcm9tPXR5cGUsIHZhbHVlc19mcm9tPWJldGEsIHZhbHVlc19maWxsPU5BKSAlPiUKICBjb2x1bW5fdG9fcm93bmFtZXMoImd2IikgJT4lIGFzLm1hdHJpeAoKc2UuaGF0IDwtIHF0bHMgJT4lCiAgc2VsZWN0KGd2LCBzZSwgdHlwZSkgJT4lCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbT10eXBlLCB2YWx1ZXNfZnJvbT1zZSwgdmFsdWVzX2ZpbGw9TkEpICU+JQogIGNvbHVtbl90b19yb3duYW1lcygiZ3YiKSAlPiUgYXMubWF0cml4CgpkZi5oYXQgPC0gcXRscyAlPiUKICBzZWxlY3QoZ3YsIGRmLCB0eXBlKSAlPiUKICBwaXZvdF93aWRlcihuYW1lc19mcm9tPXR5cGUsIHZhbHVlc19mcm9tPWRmLCB2YWx1ZXNfZmlsbD1OQSkgJT4lCiAgY29sdW1uX3RvX3Jvd25hbWVzKCJndiIpICU+JSBhcy5tYXRyaXgKCnRvcC5oaXRzIDwtIHF0bHMgJT4lCiAgc2VsZWN0KGd2LCBnZW5lLCBgdC1zdGF0YCwgdHlwZSkgJT4lCiAgbXV0YXRlKGB0LXN0YXRgPWFicyhgdC1zdGF0YCkpICU+JQogIGdyb3VwX2J5KGdlbmUpICU+JQogIHNsaWNlX21heChgdC1zdGF0YCwgbj0xLCB3aXRoX3RpZXM9RkFMU0UpICU+JQogIHB1bGwoZ3YpCnJhbmRvbS5oaXRzID0gc2FtcGxlKHF0bHMkZ3YsIG1pbigyNTAwMDAsIGxlbmd0aCh1bmlxdWUocXRscyRndikpKSkKCiMgZXN0aW1hdGUgbnVsbCBjb3JyZWxhdGlvbgpkYXRhLnRlbXAgPSBtYXNoX3NldF9kYXRhKGJldGEuaGF0W3JhbmRvbS5oaXRzLF0sc2UuaGF0W3JhbmRvbS5oaXRzLF0pClZoYXQgPSBlc3RpbWF0ZV9udWxsX2NvcnJlbGF0aW9uX3NpbXBsZShkYXRhLnRlbXApCgpkYXRhLnJhbmRvbSA9IG1hc2hfc2V0X2RhdGEoYmV0YS5oYXRbcmFuZG9tLmhpdHMsXSwgc2UuaGF0W3JhbmRvbS5oaXRzLF0sIFY9VmhhdCwgZGY9ZGYuaGF0W3JhbmRvbS5oaXRzLF0pCmRhdGEuc3Ryb25nID0gbWFzaF9zZXRfZGF0YShiZXRhLmhhdFt0b3AuaGl0cyxdLCBzZS5oYXRbdG9wLmhpdHMsXSwgVj1WaGF0LCBkZj1kZi5oYXRbdG9wLmhpdHMsXSkKYGBgCgpXaGF0IGRvIHRoZSBleGlzdGluZyBtYXNoUiBtYXRyaWNlcyBsb29rIGxpa2U/IApgYGB7cn0KbSA8LSByZWFkUkRTKCJyZXN1bHRzL21hc2hyL3BzZXVkb2J1bGsvdHlwZS9oaWdocGFzc19jZWxsaWRfY29uZmlkZW50L2VxdGxzL21hc2hyLnRvcGhpdHMucmRzIikKbmFtZXMobSRmaXR0ZWRfZyRVbGlzdCkKYGBgCgpIZXJlIHdlJ3ZlIGdvdCA1ICJFRCBQQ0EiIG1hdHJpY2VzLCBvbmUgIkVEIHRQQ0EiIG1hdHJpeCwgdGhlIGlkZW50aXR5IG1hdHJpeCwgc3BlY2lmaWMgZWZmZWN0cyBmb3IgZWFjaCBjb250ZXh0LCBlcXVhbCBlZmZlY3RzLCBhbmQgc2ltcGxlIGhldCBlZmZlY3RzLiBXaGF0IGRvIHRoZSBFRCBQQyBtYXRyaWNlcyBsb29rIGxpa2U/CmBgYHtyfQpjb3JycGxvdChtJGZpdHRlZF9nJFVsaXN0JEVEX1BDQV8xKQpjb3JycGxvdChtJGZpdHRlZF9nJFVsaXN0JEVEX1BDQV8yKQpjb3JycGxvdChtJGZpdHRlZF9nJFVsaXN0JEVEX1BDQV8zKQpjb3JycGxvdChtJGZpdHRlZF9nJFVsaXN0JEVEX1BDQV80KQpjb3JycGxvdChtJGZpdHRlZF9nJFVsaXN0JEVEX1BDQV81KQpjb3JycGxvdChtJGZpdHRlZF9nJFVsaXN0JEVEX3RQQ0EpCmBgYAoKU29vbyB0aGF0J3MgYSBwcm9ibGVtISBIb3cgYWJvdXQgdGhvc2UgaGV0IG9uZXM/CmBgYHtyfQpjb3JycGxvdChtJGZpdHRlZF9nJFVsaXN0JHNpbXBsZV9oZXRfMSkKY29ycnBsb3QobSRmaXR0ZWRfZyRVbGlzdCRzaW1wbGVfaGV0XzIpCmNvcnJwbG90KG0kZml0dGVkX2ckVWxpc3Qkc2ltcGxlX2hldF8zKQpgYGAKClNvIHRoZXNlLi4uIGFsbCBzdWNrLCBubyB3b25kZXIgd2UgYXJlIG5vdCBzZWVpbmcgaW50ZXJlc3RpbmcgcGF0dGVybnMuIExvb2tpbmcgdW5kZXIgdGhlIGhvb2QsIGxldHMgc2VlIGlmIG1heWJlIHdlJ3JlIHJ1bm5pbmcgaW50byBzb21lIGlzc3VlcyBqdXN0IGZyb20gUENBCmBgYHtyfQpVLnBjYSA9IGNvdl9wY2EoZGF0YS5zdHJvbmcsIDUpCgpjb3JycGxvdChVLnBjYSRQQ0FfMSwgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYSRQQ0FfMiwgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYSRQQ0FfMywgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYSRQQ0FfNCwgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYSRQQ0FfNSwgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYSR0UENBLCBpcy5jb3JyPUYpCmBgYAoKSWYgd2Ugd2FudCB0byBzZWUgdGhlIHBhdHRlcm5zIGNvbWluZyBvdXQsIHdlIG9idmlvdXNseSBuZWVkIHRvIGhhdmUgc29tZSBwYXR0ZXJucyBnb2luZyBpbiwgYW5kIHJpZ2h0IG5vdywgd2UgZG8gbm90LiAKYGBge3J9CmFsbF90b3BoaXRzIDwtIHF0bHMgJT4lCiAgc2VsZWN0KGd2LCBnZW5lLCBgYm9uZi5wYCwgdHlwZSkgJT4lCiAgZ3JvdXBfYnkoZ2VuZSkgJT4lCiAgc2xpY2VfbWluKGBib25mLnBgLCBuPTEsIHdpdGhfdGllcz1GQUxTRSkKYWxsX3RvcGhpdHMkcSA8LSBxdmFsdWUoc2lnaGl0cyRib25mLnApJHF2YWx1ZXMKCnNpZ2hpdHMgPC0gYWxsX3RvcGhpdHMgJT4lCiAgZmlsdGVyKHE8PTAuMDUpCgpzaWcuaGl0cyA8LSBwdWxsKHNpZ2hpdHMsIGd2KQpgYGAKCmBgYHtyfQpkYXRhLnN0cm9uZ2VyID0gbWFzaF9zZXRfZGF0YShiZXRhLmhhdFtzaWcuaGl0cyxdLCBzZS5oYXRbc2lnLmhpdHMsXSwgVj1WaGF0LCBkZj1kZi5oYXRbc2lnLmhpdHMsXSkKClUucGNhLnN0cm9uZ2VyID0gY292X3BjYShkYXRhLnN0cm9uZ2VyLCA1KQoKY29ycnBsb3QoVS5wY2Euc3Ryb25nZXIkUENBXzEsIGlzLmNvcnI9RikKY29ycnBsb3QoVS5wY2Euc3Ryb25nZXIkUENBXzIsIGlzLmNvcnI9RikKY29ycnBsb3QoVS5wY2Euc3Ryb25nZXIkUENBXzMsIGlzLmNvcnI9RikKY29ycnBsb3QoVS5wY2Euc3Ryb25nZXIkUENBXzQsIGlzLmNvcnI9RikKY29ycnBsb3QoVS5wY2Euc3Ryb25nZXIkUENBXzUsIGlzLmNvcnI9RikKY29ycnBsb3QoVS5wY2Euc3Ryb25nZXIkdFBDQSwgaXMuY29ycj1GKQpgYGAKCkZlZWQgdGhpcyBpbnRvIHRoZSBFRCBhbGdvcml0aG0KYGBge3J9ClUuZWQuc3Ryb25nZXIgPSBjb3ZfZWQoZGF0YS5zdHJvbmdlciwgVS5wY2Euc3Ryb25nZXIpCgpjb3JycGxvdChVLnBjYS5zdHJvbmdlciRFRF9QQ0FfMSwgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYS5zdHJvbmdlciRFRF9QQ0FfMiwgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYS5zdHJvbmdlciRFRF9QQ0FfMywgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYS5zdHJvbmdlciRFRF9QQ0FfNCwgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYS5zdHJvbmdlciRFRF9QQ0FfNSwgaXMuY29ycj1GKQpjb3JycGxvdChVLnBjYS5zdHJvbmdlciRFRF90UENBLCBpcy5jb3JyPUYpCmBgYAoKV2UgYXJlIG1heWJlIHN0YXJ0aW5nIHRvIGdldCBzb21ld2hlcmUsIGJ1dCBpdCdzIHN0aWxsIG5vdCBxdWl0ZSB3aGVyZSB3ZSdkIGxpa2UgaXQgdG8gYmUuIEFsc28gd29ydGggbm90aW5nIHRoYXQgdGhpcyBpcyBwcmV0dHkgc2ltaWxhciB0byB0aGUgb3JpZ2luYWwgb25lLgpgYGB7cn0KVS5mbGFzaCA9IGNvdl9mbGFzaChkYXRhLnN0cm9uZ2VyLCByZW1vdmVfc2luZ2xldG9uPVQpCgpjb3JycGxvdChVLmZsYXNoJHRGTEFTSF9kZWZhdWx0LCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF8xLCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF8yLCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF8zLCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF80LCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF81LCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF82LCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF83LCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF84LCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF85LCBpcy5jb3JyPUYpCmNvcnJwbG90KFUuZmxhc2gkRkxBU0hfZGVmYXVsdF8xMCwgaXMuY29ycj1GKQpgYGAKCgo=